package com.beans;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;


// 5大注解
// Controller   控制器
// Service      服务
// Repository   仓库
// Configuration    配置/布局
// Component    组件
@Controller
public class UserController {
//     通过修改 UserController 对其注入一个User类
//    获取对象 1.属性注入 2.构造方法注入 3.Setter注入
//     属性注入 (在使用A的时候需要使用到B类)


//    @Autowired
//    private User getUser;
//    @Autowired
//    private User userInfo;

//    public void sayHi1() {
//        System.out.println("hello Controller");
////        System.out.println("getUser ->" + getUser);
////        System.out.println("userInfo ->" + userInfo);
////getUser ->User{id=1, name='zhans'}
////userInfo ->User{id=2, name='lisi'}
//    }



//    @Resource(name = "getUser")
//    private User user1;
//    @Resource(name = "userInfo")
//    private User user2;
//    // @Autowired和@Resource的区别就是 @Resource多了个name属性 通过name属性来获取存入spring中的属性
//// 但是如果我们非要使用@Autowired 那我们就得配合@Qualifier注解使用 这样效果和@Resource一样
//    public void sayHi2() {
//        System.out.println("hello Controller");
//        System.out.println("getUser ->" + user1);
//        System.out.println("userInfo ->" + user2);
////getUser ->User{id=1, name='zhans'}
////userInfo ->User{id=2, name='lisi'}
//    }





    @Autowired
    @Qualifier(value = "getUser")
//    Qualifier筛选作用 value = 可以省略  但是不保证哪天就删除该机制了 所以还是记得加上
    private User user1;
    @Autowired
    @Qualifier("userInfo")
    private User user2;
    public void sayHi() {
        System.out.println("hello Controller");
        System.out.println("getUser ->" + user1);
        System.out.println("userInfo ->" + user2);
//hello Controller
//getUser ->User{id=1, name='zhans'}
//userInfo ->User{id=2, name='lisi'}
    }

}
